﻿using System.Collections.Generic;
using BlockLogic.Impl.Blocks.ServiceDevice.Enum;
using ComputationalCore.Interface.RandomGenerator;

namespace BlockLogic.Interface.Blocks.ServiceDevice
{
    public interface IServiceDevice : IInputBlock, IOutputBlock
    {
        double WorkingTime { get; }

        double DownTime { get; }

        List<IRequest> RequestsQueue { get; }

        IRequestBuffer UnServedBuffer { get; set; }

        IRandomGenerator RandomGenerator { get; set; }

        ServiceDiscipline ServiceDiscipline { get; set; }

        int MaxQueueLength { get; set; }

        void Service();
    }
}
